'use strict';

module.exports = app => {
  // 引入数据类型
  const { STRING, INTEGER, TEXT } = app.Sequelize;
  // 建模 创建表user自动加的s
  const Blog = app.model.define('blog', {
    userId: {
      type: INTEGER,
      allowNull: false,
      comment: '用户名的id 外键 userid -> user.id',
    },
    content: {
      type: TEXT,
      allowNull: false,
      comment: '微博内容',
    },
    images: {
      type: STRING,
      allowNull: true,
      comment: '微博图片地址',
    },
  });
  // 创建外键
  Blog.associate = () => {
    // 用户与博客是一对多的关系
    app.model.Blog.belongsTo(app.model.User, {
      foreignKey: 'userId',
      targetKey: 'id',
    });

    // 和userRelation 表关联起来
    app.model.Blog.belongsTo(app.model.UserRelation,{
      foreignKey: 'userId', // `同一个字段不可以设置两个外键 这样写只是在sequelize中做关联 并不是真的设置了两个外键
      targetKey: 'followerId',
    });
  };
  return Blog;
}